home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 8457 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  3.1 KB

  1. Path: solon.com!not-for-mail
  2. From: David Evans <evs@larch.lcs.mit.edu>
  3. Newsgroups: comp.lang.c.moderated,comp.lang.c
  4. Subject: LCLint 2.0
  5. Date: 3 Mar 1996 22:11:02 -0600
  6. Organization: MIT Lab for Computer Science
  7. Sender: clc@solutions.solon.com
  8. Approved: clc@solutions.solon.com
  9. Message-ID: <4hdqgm$8nv@solutions.solon.com>
  10. NNTP-Posting-Host: solutions.solon.com
  11. X-Mailer: Mozilla 2.0 (X11; I; OSF1 V3.2 alpha)
  12.  
  13. [I am approving this, and heartily endorsing it.  I got it, it built
  14.  without trouble, and it has reassured me that my code is beautiful. -mod]
  15.  
  16. LCLint 2.0 in now available from MIT.
  17.  
  18. LCLint is a tool for statically checking C programs. With minimal
  19. effort, LCLint can be used as a better lint. If additional effort is
  20. invested adding annotations to programs, LCLint can perform stronger
  21. checks than can be done by any standard lint.
  22.  
  23. Version 2.0 is a major upgrade to the last release, Version 1.4c.
  24.  
  25. The most important enhancement is detection of errors relating to
  26. dynamic memory management: uses of deallocated storage, memory leaks,
  27. dangerous data sharing or unexpected aliasing, uses of possibly
  28. undefined storage, dereferencing a possibly null pointer. These errors
  29. are detected using information provided in annotations. This is
  30. described in
  31.  
  32.      Static Detection of Dynamic Memory Errors. David Evans. To appear
  33.      in SIGPLAN Conference on Programming Language Design and
  34.      Implementation (PLDI '96), Philadelphia, PA, May 1996.
  35.      http://larch-www.lcs.mit.edu:8001/~evs/pldi96-abstract.html
  36.  
  37. Some other problems detected by LCLint include: 
  38.  
  39.   o Violations of information hiding. A user-defined type can be
  40.     declared as abstract, and a message is reported where code
  41.     inappropriately depends on the representation of the type. 
  42.    
  43.   o Inconsistent modification of caller-visible state. Functions can be
  44.     annotated with information on what caller-visible state may be
  45.     modified by the function, and an error is reported if the
  46.     modifications produced by the function contradict its declaration. 
  47.  
  48.   o Inconsistent use of global variables. Information on what global 
  49.     and file scope variables a function may use can be added to 
  50.     function declarations, and a message is reported if the
  51.     implementation of the function uses other global variables or 
  52.     does not uses every global variable listed in its declaration. 
  53.  
  54.   o Dangerous macro implementations or invocations. 
  55.   
  56.   o Violations of customizable naming conventions. 
  57.    
  58.   o Program behavior that is undefined because it depends on order 
  59.     of evaluation, likely infinite loops, incomplete logic, statements 
  60.     with no effect, ignored return values, unused declarations, and
  61.     exceeding certain standard limits. 
  62.  
  63. Please visit the LCLint home page at 
  64.  
  65.    http://larch-www.lcs.mit.edu:8001/larch/lclint/index.html
  66.  
  67. for more information.  The LCLint web site includes the user guide in
  68. HTML format, a sample demonstrating the use of LCLint and a form that
  69. can be used to run LCLint remotely.
  70.  
  71. LCLint 2.0 can be downloaded from
  72.  
  73.    http://larch-www.lcs.mit.edu:8001/larch/lclint/download.html
  74.  
  75. or via anonymous ftp from
  76.  
  77.    ftp://larch.lcs.mit.edu/pub/Larch/lclint/
  78.